前一天我們介紹了迴歸與分類問題,今天來介紹機器學習的模型與優化器。
課程當中講述了接下來會介紹的幾個重點,有機器學習模型定義以及優化器的選擇,還有討論損失函數以及梯度下降法如何找到最佳解,首先來看一下機器學習模型究竟是什麼?
ML模型是具有參數和超參數的數學函數,參數是在模型訓練期間發生變化的實值變量。 超參數是我們在訓練之前設置的設置,之後不會改變。只要數據當中的值涉及到連續型的值,就是一個迴歸問題,而線性模型是最早的機器學習模型之一,是目前使用很廣泛的模型,初學模型的時候都會接觸到它,雖然說模型看起來簡易,在視覺上只是2D空間中的一條線,公式是由y = mx + b的函數組成。
在機器學習當中有許多的方法可以找到模型的最佳解,選擇使用不同的優化器能幫助你找到最佳的解。
梯度下降法(Gradient Descent)是最基本的優化器,它的策略是在有限的可視範圍內尋找最快的路徑下山,每走一步就會參考當前位置最陡的方向走下一步,目前主要有三種變形的梯度下降法:
容易陷入局部最優解:因為是在有限的可視範圍內尋找下山的方向,當陷入平坦窪地時會以為來到了最低點即最佳解就不繼續往下走,梯度為0之後模型參數就不繼續更新。
兩種情況都可以看出,Adagrad, Adadelta, RMSprop 幾乎很快就找到了正確的方向並前進,收斂速度也相當快,而其它方法要麼很慢,要麼走了很多彎路才找到。
由圖可知自適應學習率方法即 Adagrad, Adadelta, RMSprop, Adam 在這種情景下會更合適而且收斂性更好。
今天先介紹到這,明天我們來介紹Python在建立機器學習模型與超參數的技巧。